#ifndef __CK_FIELD_H__
#define __CK_FIELD_H__

#include "ckobject.h"
#include "zCore.h"
#include <string>

namespace ck
{
	class Value;

	namespace data
	{
		class FieldDef;

		class ZCORE_API Field :	public ckObject
		{
		public:
			Field();
			virtual ~Field();

		public:
			const char*		GetName();
			RESULTCODE		SetName(const char* szName);

			const char*		GetDescription();
			RESULTCODE		SetDescription(const char* szDescription);

			Value*			GetValue();
			RESULTCODE		SetValue(Value* pValue);

			FieldDef*		GetFieldDef();
			RESULTCODE		SetFieldDef(FieldDef* pFieldDef);

		protected:
			std::string m_strName;
			std::string m_strDescription;
			Value*		m_pValue;
			FieldDef*	m_pFieldDef;

		};
	}
}

#endif //__CK_FIELD_H__
